// 权限
import router from './router'
import { useUserStore } from './store/user'
import { message } from 'ant-design-vue'
import NProgress from 'nprogress'
import { profile } from '@/api/user'
import setTitle from '@/utils/setPageTitle'
//路由守卫进入前
router.beforeEach((to, from, next) => {
  setTitle(to.meta.title)
  NProgress.start()
  const useUser = useUserStore()
  const { token } = useUser
  if (token) {
    // 存在token
    if (to.path === '/login') {
      // 提示已经处于登录状态，确定要退出？
      message.warning('请退出后,再重新登录！')
      next(from.path)
    } else {
      // 这边可以判断下角色信息是否存在，不存在尝试发送请求
      profile()
        .then((res) => {
          console.log(res)
          if (!res.roles || res.roles.length === 0 || !res.status) {
            // 这边代码需要后期继续完善,没有操作权限
            message.confim('没有权限操作内容')
          }
          // 跟新到pinia的store中
          useUser.updateInfo(res)
        })
        .catch((e) => {
          console.log(e)
        })
      next()
    }
  } else {
    // 判断是否去除过login的页面： /login =>from    to=》home
    if (to.path !== '/login') {
      message.warning('暂无权限，请登录')
      next('/login')
    }
    next()
  }
})
//进入后
router.afterEach(() => {
  NProgress.done()
})
